#include <iostream>
#include <string>
using namespace std;

// 定义学生结构体
struct Student
{
    string name; // 姓名
    int age;     // 年龄
    int score;   // 分数
};

// 打印学生信息函数
// 1、值传递
void printStudent1(Student s)
{
    s.age = 100; // 实参不会改变
    cout << "子函数1中 姓名：" << s.name << "  年龄：" << s.age
         << "  分数：" << s.score << endl;
}

// 2、地址传递
void printStudent2(Student *s)
{
    s->age = 80; // 实参也会改变
    cout << "子函数2中 姓名：" << s->name << "  年龄：" << s->age
         << "  分数：" << s->score << endl;
}

int main()
{
    // 结构体做函数的参数
    // 将学生传入到一个参数中，打印学生身上的所有属性

    // 创建一个结构体变量
    Student s1 = {"张三", 20, 85};

    // 打印学生信息
    printStudent1(s1);
    printStudent2(&s1);

    cout << "main函数中 姓名：" << s1.name << "  年龄：" << s1.age
         << "  分数：" << s1.score << endl;

    return 0;
}